package com.enhe.gck.pojo;

import com.alibaba.fastjson.annotation.JSONField;
import com.enhe.gck.item.BatchHWANE20386Item;
import com.kuangkie.carbon.record.Updatable;
import com.kuangkie.carbon.record.annotation.Attribute;
import com.kuangkie.carbon.record.annotation.CarbonRecord;
import com.kuangkie.carbon.record.annotation.RecordCode;
import com.kuangkie.carbon.uid.model.UidManager;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

// 出场批次
@Data
@CarbonRecord("hwane20386")
public class Batch implements Updatable {
    @JSONField(name = "唯一编码")
    @RecordCode
    private Long id = UidManager.getLongUID();

    // 签发日期
    @JSONField(name = "签发日期")
    @Attribute("hwan20388")
    private LocalDate dateOfIssue;

    // 水泥编号
    @JSONField(name = "水泥编号")
    @Attribute("hwan20389")
    private String number;

    // 年份
    @JSONField(name = "年份")
    @Attribute("hwan20390")
    private String year;

    // 数量
    @JSONField(name = "数量")
    @Attribute("hwan20391")
    private BigDecimal sum;

    // 剩余数量
    @JSONField(name = "剩余数量")
    @Attribute("hwan20392")
    private BigDecimal sumResidue;

    // 启用
    @JSONField(name = "启用")
    @Attribute("hwan20393")
    private Boolean isUsing;

    // 删除
    @JSONField(name = "删除")
    @Attribute("hwan20394")
    private Boolean isDelete;

    // 备注
    @JSONField(name = "备注")
    @Attribute("hwan20400")
    private String remark;

    // 所属子公司
    @JSONField(name = "所属子公司")
    @Attribute("hwan20412")
    private String affiliatedSubsidiaries;

    // 包装日期
    @JSONField(name = "包装日期")
    @Attribute("hwan20413")
    private LocalDate packageDate;

    // 过期时间
    @JSONField(name = "过期时间")
    @Attribute("hwan20414")
    private LocalDate failureTime;

    // 类型
    @JSONField(name = "类型")
    @Attribute("hwan20422")
    private String type;

    // 批次类型
    @Attribute(BatchHWANE20386Item.基本属性组_批次类型)
    private String batchType;

    @Override
    public String getRecordCode() {
        return this.id == null ? null : this.id.toString();
    }
}